#ifndef _IDNS_H_
#define _IDNS_H_

#define DNS_PROC_RES_NOERROR		S_SUCCESS
#define DNS_PROC_RES_ERROR			S_ERROR

interface IDnsProc : public IBase
{
	std_method(OnGetHost)(int error, LPCSTR hostname, LPCSTR host) PURE;
};

// {92EBBD6E-BF4D-41EC-9DFB-07C9AFF0CCC0}
_DEFINE_IID(IID_IDnsProc,
	0x92ebbd6e, 0xbf4d, 0x41ec, 0x9d, 0xfb, 0x7, 0xc9, 0xaf, 0xf0, 0xcc, 0xc0);

interface IDns : public IBase
{
	std_method(Send)(LPCSTR hostname, IBase* pProc) PURE;
	std_method(Post)(LPCSTR hostname, IBase* pProc) PURE;
	std_method(Close)() PURE;
};


// {510FD0EA-BAE2-4BC8-B650-76E8FD5ED853}
_DEFINE_IID(IID_IDns,
	0x510fd0ea, 0xbae2, 0x4bc8, 0xb6, 0x50, 0x76, 0xe8, 0xfd, 0x5e, 0xd8, 0x53);

// {99148517-E9AB-4F72-A2E3-012625A35E95}
_DEFINE_GUID(CLSID_IDns,
	0x99148517, 0xe9ab, 0x4f72, 0xa2, 0xe3, 0x1, 0x26, 0x25, 0xa3, 0x5e, 0x95);

#endif
